package cn.itcast.com.homework.day722;
/*
2.完成课堂上没有讲完的案例
 教练和运动员案例(只不过把篮球改成了足球哈，称呼变了)
    乒乓球运动员和足球运动员。
    乒乓球教练和足球教练。
    为了出国交流，跟乒乓球相关的人员都需要学习英语。
    请用所学知识：
    分析，这个案例中有哪些抽象类，哪些接口，哪些具体类

   乒乓球用运动员 属性  name age salary learnEnglish()
                           行为 eat() sleep() train() match()

   足球运动员    属性  name age salary
                       行为 eat() sleep() train() match()

   乒乓球教练:  nama age salary bonus
                     eat()，sleep(), teach()，learnEnglish()

   足球教练：   nama age salary bonus
                       eat()，sleep(), teach()
 */
public class pingpong {
    public static void main(String[] args) {

    }
}
//描述作为人的基本行为
class Human{
    String name;
    int age;
    double salary;

    public Human(String name, int age, double salary) {
        this.name = name;
        this.age = age;
        this.salary = salary;
    }

    public void eat(){
        System.out.println("吃饭");
    }

    public void sleep(){
        System.out.println("睡觉");
    }
}
//继承人
//用来描述所有的运动员，但是不同运动员训练和比赛的
//内容不同，具体的方法要具体的实现，此类是抽象train() match()
abstract class Athlete extends Human{
    public Athlete(String name, int age, double salary) {
        super(name, age, salary);
    }

    public abstract void train();
    public abstract void match();

}
//用来描述教练，多了一个独有的奖金属性
//多一个教授这个行为
abstract class Coach extends Human{
    double bonus;

    public Coach(String name, int age, double salary,double bonus) {
        super(name, age, salary);
    }

    public abstract void teacher();
}
//继承Athlete，实现乒乓球运动员的具体的训练比赛
class TabeltennisAthlete extends Athlete implements SpecialSkill{
    public TabeltennisAthlete(String name, int age, double salary) {
        super(name, age, salary);
    }

    public void train(){
        System.out.println("练习乒乓球");
    }
    public void match(){
        System.out.println("打乒乓球比赛");
    }

    public void learnEnglish() {
        System.out.println("学习运动员专属的英语");
    }
}

class FootAthlete extends Athlete{

    public FootAthlete(String name, int age, double salary) {
        super(name, age, salary);
    }

    public void train() {
        System.out.println("练习足球");
    }

    public void match() {
        System.out.println("打足球比赛");
    }
}

//乒乓球教练继承Coach,实现教授这个方法
class TabeltennisCoach extends Coach implements SpecialSkill{

    public TabeltennisCoach(String name, int age, double salary, double bonus) {
        super(name, age, salary, bonus);
    }

    public void teacher() {
        System.out.println("教授乒乓运动员");
    }

    public void learnEnglish() {
        System.out.println("学习教练专属英语");
    }
}
class FootballCoach extends Coach{

    public FootballCoach(String name, int age, double salary, double bonus) {
        super(name, age, salary, bonus);
    }

    public void teacher() {
        System.out.println("教授足球运动员");
    }
}

interface SpecialSkill{
    void learnEnglish();
}
